libadwaita 0.1.1

Rust bindings for libadwaita
docs.rs failed to build libadwaita-0.1.1
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: libadwaita-0.6.0

Rust Adwaita bindings

This library contains safe Rust bindings for Adwaita, a library that offers building blocks for modern GNOME applications.

See also

Example

Adwaita needs to be initialized before use by calling [fn@init] on startup.

The libadwaita crate is usually renamed to adw. You can do this globally in your Cargo.toml file:

[dependencies.adw]
package = "libadwaita"
version = "0.x.y"
# use libadwaita as adw;
use adw::prelude::*;

use adw::{ActionRow, ApplicationWindow, HeaderBar};
use gtk::{Application, Box, ListBox, Orientation};

fn main() {
let application = Application::builder()
.application_id("com.example.FirstAdwaitaApp")
.build();

application.connect_startup(|_| {
adw::init();
});

application.connect_activate(|app| {
// ActionRows are only available in Adwaita
let row = ActionRow::builder()
.activatable(true)
.selectable(false)
.title("Click me")
.build();
row.connect_activated(|_| {
eprintln!("Clicked!");
});

let list = ListBox::builder()
.margin_top(32)
.margin_end(32)
.margin_bottom(32)
.margin_start(32)
// the content class makes the list look nicer
.css_classes(vec![String::from("content")])
.build();
list.append(&row);

// Combine the content in a box
let content = Box::new(Orientation::Vertical, 0);
// Adwaitas' ApplicationWindow does not include a HeaderBar
content.append(
&HeaderBar::builder()
.title_widget(&adw::WindowTitle::new("First App", ""))
.build(),
);
content.append(&list);

let window = ApplicationWindow::builder()
.application(app)
.default_width(350)
// add content to window
.content(&content)
.build();
window.show();
});

application.run();
}